home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 011-020 / amok11 / r.o.m. / m2sources / myremember.def < prev    next >
Text File  |  1993-11-04  |  2KB  |  45 lines

  1. DEFINITION MODULE MyRemember;
  2. (*
  3.   Created:   1987 by
  4.              Stefan Salewski
  5.              Stolper Weg 3
  6.              2160 Stade   West-Germany
  7.              Tel: 04141/61130
  8.              
  9.   Note: compiled with AMIGA Modula-2 System by AMSoft from 5.5.88
  10.    
  11.   This Module may be freely copied. But please
  12.   leave my name in. Thanks....Stefan  
  13. *)
  14.   FROM SYSTEM IMPORT ADDRESS;
  15.   TYPE
  16.     RememberNodePtr=POINTER TO RememberNode; 
  17.     RememberNode=RECORD
  18.                    previous:RememberNodePtr;
  19.                    memSize:LONGINT;
  20.                    adr:ADDRESS;
  21.                  END;
  22.   PROCEDURE AllocRemember(VAR remKey:RememberNodePtr;VAR adr:ADDRESS;
  23.                           size:LONGINT);
  24.                           
  25.   (* 
  26.      AllocRemember ersetzt die entsprechnende Funktion von Intuition,
  27.      welche bei mir manchmal einen Absturz des Rechners verursachte.
  28.      Beim erstem Aufruf muss remKey den Wert NIL haben. Danach darf
  29.      remKey nicht mehr geaendert werden. Die Prozedur liefert beliebig oft
  30.      einen Speicherbereich der Groesse size an der Addresse adr .
  31.      Der Vorteil gegenueber ALLOCATE und DEALLOCATE ist, dass saemmtliche
  32.      Speicherbereiche mit nur einem Aufruf von FreeRemember wieder 
  33.      freigegeben werden koennen.
  34.   *)
  35.   
  36.   PROCEDURE FreeRemember(VAR remKey:RememberNodePtr);
  37.   
  38.   (* Gibt alle durch AllocRemember reservierten Speicherbereiche wieder
  39.      frei und setzt remKey auf den Wert NIL. Da AllocRemember die
  40.      Funktion ALLOCATE benutzt, wird beim Programmende oder bei einem
  41.      Abbruch der Speicher vom Laufzeitsystem wieder freigegeben.
  42.   *)
  43.   
  44. END MyRemember.def
  45.